"""
数据输入
==============================================================================================

RDD对象
- PySpark支持多种数据的输入，在输入完成后，都会得到一个：RDD类的对象
- RDD全称为：弹性分布式数据集（Resilient Distributed Datasets）
- PySpark针对数据的处理，都是以RDD对象作为载体，即：
-- 数据存储在RDD内
-- 各类数据的计算方法，也都是RDD的成员方法
-- RDD的数据计算方法，返回值依旧是RDD对象

==============================================================================================
Python数据容器转RDD对象
- PySpark支持通过SparkContext对象的parallelize成员方法，将：list、tuple、set、dict、str 转换为PySpark的RDD对象

注意
- 字符串会被拆分出1个个的字符，存入RDD对象
- 字典仅有key会被存入RDD对象

"""

from pyspark import SparkConf, SparkContext
import os

os.environ["PYSPARK_PYTHON"] = "D:/python3.11/python.exe"

conf = SparkConf().setMaster("local[*]").setAppName("test_spark_app")

sc = SparkContext(conf=conf)
# #通过parallelize方法将Python对象加载到Spark内，成为RDD对象
# rdd1 = sc.parallelize([1, 2, 3, 4, 5])
# rdd2 = sc.parallelize((1, 2, 3, 4, 5))
# rdd3 = sc.parallelize("abcdefg")
# rdd4 = sc.parallelize({1, 2, 3, 4, 5})
# rdd5 = sc.parallelize({"key1": "value1", "key2": "value2"})
#
# #如果想查看RDD内有什么内容，可以用collect方法
# print(rdd1.collect())
# print(rdd2.collect())
# print(rdd3.collect())
# print(rdd4.collect())
# print(rdd5.collect())


# 用过textFile方法，读取文件数据加载到Spark内，成为RDD对象
rdd = sc.textFile("bili.txt")
print(rdd.collect())
sc.stop()
